+Mon Jan 7 08:48:23 2002 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkdnd.c (gtk_drag_find_widget): don't forget to offset
+ the pointer by x/y_offset into the new window when we found
+ the drag destination.
+
+ * gtk/gtkaccelmap.c (internal_change_entry): fix return code
+ for simulation when the entry already contains the required
+ accel key and mod.
+
2002-01-06 Matthias Clasen <matthiasc@poet.de>
* docs/debugging.txt: Replace GTK_NO_CHECK_CASTS by
+Mon Jan 7 08:48:23 2002 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkdnd.c (gtk_drag_find_widget): don't forget to offset
+ the pointer by x/y_offset into the new window when we found
+ the drag destination.
+
+ * gtk/gtkaccelmap.c (internal_change_entry): fix return code
+ for simulation when the entry already contains the required
+ accel key and mod.
+
2002-01-06 Matthias Clasen <matthiasc@poet.de>
* docs/debugging.txt: Replace GTK_NO_CHECK_CASTS by
+Mon Jan 7 08:48:23 2002 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkdnd.c (gtk_drag_find_widget): don't forget to offset
+ the pointer by x/y_offset into the new window when we found
+ the drag destination.
+
+ * gtk/gtkaccelmap.c (internal_change_entry): fix return code
+ for simulation when the entry already contains the required
+ accel key and mod.
+
2002-01-06 Matthias Clasen <matthiasc@poet.de>
* docs/debugging.txt: Replace GTK_NO_CHECK_CASTS by
+Mon Jan 7 08:48:23 2002 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkdnd.c (gtk_drag_find_widget): don't forget to offset
+ the pointer by x/y_offset into the new window when we found
+ the drag destination.
+
+ * gtk/gtkaccelmap.c (internal_change_entry): fix return code
+ for simulation when the entry already contains the required
+ accel key and mod.
+
2002-01-06 Matthias Clasen <matthiasc@poet.de>
* docs/debugging.txt: Replace GTK_NO_CHECK_CASTS by
+Mon Jan 7 08:48:23 2002 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkdnd.c (gtk_drag_find_widget): don't forget to offset
+ the pointer by x/y_offset into the new window when we found
+ the drag destination.
+
+ * gtk/gtkaccelmap.c (internal_change_entry): fix return code
+ for simulation when the entry already contains the required
+ accel key and mod.
+
2002-01-06 Matthias Clasen <matthiasc@poet.de>
* docs/debugging.txt: Replace GTK_NO_CHECK_CASTS by
+Mon Jan 7 08:48:23 2002 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkdnd.c (gtk_drag_find_widget): don't forget to offset
+ the pointer by x/y_offset into the new window when we found
+ the drag destination.
+
+ * gtk/gtkaccelmap.c (internal_change_entry): fix return code
+ for simulation when the entry already contains the required
+ accel key and mod.
+
2002-01-06 Matthias Clasen <matthiasc@poet.de>
* docs/debugging.txt: Replace GTK_NO_CHECK_CASTS by
+Mon Jan 7 08:48:23 2002 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkdnd.c (gtk_drag_find_widget): don't forget to offset
+ the pointer by x/y_offset into the new window when we found
+ the drag destination.
+
+ * gtk/gtkaccelmap.c (internal_change_entry): fix return code
+ for simulation when the entry already contains the required
+ accel key and mod.
+
2002-01-06 Matthias Clasen <matthiasc@poet.de>
* docs/debugging.txt: Replace GTK_NO_CHECK_CASTS by
@accel_mods:
@Returns:
+<!-- ##### FUNCTION gtk_accel_group_get_type ##### -->
+<para>
+
+</para>
+
+@Returns:
+
<!-- ##### FUNCTION gtk_accel_group_handle_add ##### -->
<para>
@child1_req:
@child2_req:
+<!-- ##### MACRO gtk_paned_handle_size ##### -->
+<para>
+Old name for gtk_paned_set_handle_size().
+</para>
+
+
<!-- ##### FUNCTION gtk_paned_set_handle_size ##### -->
<para>
Set the the handle size to @size x @size pixels.
</para>
-<!-- ##### FUNCTION gtk_accel_group_get_type ##### -->
-<para>
-
-</para>
-
-@Returns:
-
-
<!-- ##### FUNCTION gtk_accel_group_new ##### -->
<para>
</para>
+
<!-- ##### FUNCTION gtk_accel_group_connect ##### -->
<para>
@child: the child to add
-<!-- ##### MACRO gtk_paned_handle_size ##### -->
-<para>
-Old name for gtk_paned_set_handle_size().
-</para>
-
-
-
<!-- ##### MACRO gtk_paned_gutter_size ##### -->
<para>
Old name for gtk_paned_set_gutter_size().
Gets the class of @tobj.
</para>
+<!-- # Unused Parameters # -->
@tobj: a #GtkObject.
return slist;
}
+/* if simulate==TRUE, return whether accel_path can be changed to
+ * accel_key && accel_mods. otherwise, return whether accel_path
+ * was actually changed.
+ */
static gboolean
internal_change_entry (const gchar *accel_path,
guint accel_key,
gboolean simulate)
{
GSList *node, *slist, *win_list, *group_list, *replace_list = NULL;
- GHashTable *group_hm, *win_hm;
+ GHashTable *group_hm, *window_hm;
gboolean change_accel, removable, can_change = TRUE, seen_accel = FALSE;
GQuark entry_quark;
AccelEntry *entry = accel_path_lookup (accel_path);
/* if there's nothing to change, not much todo either */
if (entry->accel_key == accel_key && entry->accel_mods == accel_mods)
- return FALSE;
+ {
+ if (!simulate)
+ entry->changed = TRUE;
+ return simulate ? TRUE : FALSE;
+ }
/* nobody's interested, easy going */
if (!entry->groups)
/* 1) fetch all accel groups affected by this entry */
entry_quark = g_quark_try_string (entry->accel_path);
group_hm = g_hash_table_new (NULL, NULL);
- win_hm = g_hash_table_new (NULL, NULL);
+ window_hm = g_hash_table_new (NULL, NULL);
for (slist = entry->groups; slist; slist = slist->next)
g_hash_table_insert (group_hm, slist->data, slist->data);
GtkAccelGroup *group = slist->data;
for (node = group->acceleratables; node; node = node->next)
- g_hash_table_insert (win_hm, node->data, node->data);
+ g_hash_table_insert (window_hm, node->data, node->data);
}
g_slist_free (group_list);
/* 3) include all accel groups used by acceleratables */
- win_list = g_hash_table_slist_values (win_hm);
- g_hash_table_destroy (win_hm);
+ win_list = g_hash_table_slist_values (window_hm);
+ g_hash_table_destroy (window_hm);
for (slist = win_list; slist; slist = slist->next)
for (node = gtk_accel_groups_from_object (slist->data); node; node = node->next)
g_hash_table_insert (group_hm, node->data, node->data);
new_allocation.x -= tx;
new_allocation.y -= ty;
}
-
+
while (window && window != widget->parent->window)
{
gdk_window_get_size (window, &twidth, &theight);
{
data->found = data->callback (widget,
data->context,
- data->x - new_allocation.x,
- data->y - new_allocation.y,
+ data->x - new_allocation.x - x_offset,
+ data->y - new_allocation.y - y_offset,
data->time);
/* If so, send a "drag_leave" to the last widget */
if (data->found)